A standard known as iSCSI uses TCP/IP (Transmission Control Protocol/Internet Protocol) for capsuling commands on SCSI (Small Computer System Interface) which is a standard for connecting personal computers and peripheral devices such as storage devices. By utilizing iSCSI, the user can access (RD (read) data, WR (write) data, etc.) peripheral devices (hereafter storage devices, but may be any iSCSI compatible device) such as storage devices compatible with iSCSI on IP networks by using SCSI commands. Here, the device that issues commands is called the initiator and the device that receives and processes those commands is called the target. The IP packet containing the iSCSI command is here referred to as the iSCSI packet.
FIG. 1 for example shows an application where a user 100-i (i=1 through n) is accessing other users on iSCSI through a datacenter 103 by utilizing a wide area network 102 comprised of an IP network or wide area Ethernet (registered trademark) that guarantees the user bandwidth. The datacenter 103 internally contains a storage switch 104 and a storage device 105-i (i=1 through n) that make up the IP-SAN or FC-SAN 106 (hereafter SAN is used as a general name for IP-SAN and FC-SAN) The console 107 makes the storage switch 104 settings. The operation of the wide area network 102 connecting the user 100 and the datacenter 103 is guaranteed by a bandwidth guarantee service so that no discarding of data occurs when the traffic volume is within the contract bandwidth.
A UPC (User Parameter Control) function is generally used in QoS (Quality of Service) control of the wide area network 102. This UPC function utilizes a packet switching system 101 at the entry point to the network to monitor whether or not the user is sending or receiving data within the contract bandwidth. The QoS control is a technology for guaranteeing the communication band set for each user on IP networks mainly using best effort type. When the UPC detects traffic exceeding the contract bandwidth, the packet in violation is discarded on the spot, or a data transfer priority system is used that for example sets a low data transfer priority for discard candidates when traffic congestion has occurred within the wide area network.
FIG. 2 is a concept view showing the case when a user 100 is reading data in the data storage device 105-i within the datacenter 103 using the application of FIG. 1. For purposes of simplification, only one user and one storage device are shown and the others are omitted. The method for loading (reading out) data from the storage device 105-i is described here using FIG. 2. First of all, in order to request data from the storage device 105-i, the user 100 sends a data read request as an iSCSI command. More specifically, this request is an iSCSI packet (hereafter read request packet) set with a 1 in the Rbit, and an operation code of 0x01 for the BHS (Basic Header Segment) of the iSCSI PDU (Protocol Data Unit). The read request packet 200 contains the data size (capacity) of the data requested by the user. More specifically, this data capacity is the Expected Data Transfer Length value (hereafter requested RD length) of the BHS set with 1 in the Rbit and an operation code of 0x01. The storage device 105-i that received the read request packet 200 utilizes the SCSI Data-in (hereafter RD data packet) command 201 with a BHS operation code of 0x25 for the iSCSI PDU) in an iSCSI packet to send the requested read length to the user 100. If the read data exceeds the MTU (Maximum Transfer Unit) then the packet is divided into multiple read (RD) data packets and sent. The above described the process flow during data loading.
One read request packet 200 has a small data capacity of about 100 bytes. The data size of the RD data packet (Data-in PDU) 201 however varies according to the data amount requested by the user and in many cases is several dozen to several hundred kilobytes more. Therefore even if the traffic of the read request packet 200 the user sends to the storage device 105-i is within the contract bandwidth, the traffic quantity of the RD data packet 201 the storage device 105-i sends to the user might be outside (might violate) the user contract bandwidth. An RD data packet 201 that violates the contract bandwidth is unable to arrive at the user 100 due to being a packet discarded at the congestion spot within the wide area network for a bandwidth breach (violation) 202 or a packet discarded by QoS control 203 at the packet switching system 101.
FIG. 3 is a concept view showing the case when a user 100 is writing data in the data storage device 105-i within the datacenter 103 using the application of FIG. 1. For purposes of simplification, only one user and one storage device are shown and the others are omitted. The method for writing data onto the storage device 105-i using iSCSI is described here. First of all, in order to request writing onto the storage device 105-i, the user 100 sends a data write request as an iSCSI command. More specifically, this request is an iSCSI packet (hereafter write request packet) set with a 1 in the Wbit, and an operation code of 0x01 for the BHS (Basic Header Segment) of the iSCSI PDU (Protocol Data Unit). The storage device 105-i that received this write request packet 300 sends an R2T command (more specifically this {R2T packet} Ready to Transfer has an operation code 0x31 for the BHS of the iSCSI PDU) 301 as an iSCSI packet to the user 100. This R2T packet 301 has the task of showing the user 100 that the preparation made by the storage device 105-i for writing the data sent from the user 100 is complete. The R2T packet 301 holds information on how many bytes of data were accepted at one time. More specifically, this information is the Desired Data Transfer Length Value (hereafter requested WR length). The user 100 that received the RT2 packet 301, sends the requested WR length data of R2T packet 301 to the storage device 105-i, utilizing the Data-out command iSCSI packet 302. More specifically, this Data-out command iSCSI packet 302 is an SCSI Data-out {hereafter WR data packet} packet having an operation code of 0x05 of the BHS of the iSCSI PDU. If this write data exceeds the network path MTU then the packet is divided into multiple write (WR) data packets and sent. The above description explained the process flow during data writing (WR).
The same as when reading data (RD), there is a large difference between the WR data packet 302 data size, and the WR request packet 300 data size, and the R2T packet 301 data size. So though the WR request packet 300 sent by the user 100 to the storage device 105-i, and the R2T packet 301 traffic quantity sent to the user 100 by the storage device 105-i will fit within the user contract bandwidth, the traffic quantity of the WR data packet (Data-out PDU) 302 sent by the user to the storage device 105-i might violate the user contract bandwidth. An WR data packet 302 that violates the contract bandwidth is unable to arrive at the storage device 105-i due to being a packet discarded at the congestion spot within the wide area network for a bandwidth breach (violation) 303 or a packet discarded by QoS control 304 at the packet switching system 101.
The iSCSI utilizes TCP/IP for the host protocol. Therefore transmit must be re-performed when data discarding occurs along the path. However, where the discard quantity is large, wasted traffic occurs on the wide area network 102, leading to wasteful resource consumption of the storage switch 104 and the storage device 105-i and causes a deterioration in overall device performance.
The IP network of the related art required a device called a traffic shaper to control the bandwidth at the entry point to the wide area network in order to prevent the transmitted data bandwidth on the wide area network 102 from exceeding the user contract bandwidth. This traffic shaper regulates (shaping) the traffic so that the amount of transmitted data sent by the user to the wide area network does not exceed the contract bandwidth, and prevents discarding of the transmitted data on the wide area network 102. One example of a patent for a bandwidth control device for guaranteeing that data greater than the contract bandwidth is not sent to the wider area network 102 is shown in Patent document 1. The bandwidth control device disclosed in Patent document 1 temporarily stores the packet sent from the user in a buffer within the bandwidth control device. Next, the packets loaded from the buffer are constantly measured. When the packet quantity loaded from the buffer has exceeded the contract bandwidth, the data amount sent from the user to the wide area network is controlled so as not to exceed the contract bandwidth by temporarily stopping the loading (read-out) of packets from the buffer.
[Patent document 1] JP-A No. 349763/2000
Applying the bandwidth control device of Patent document 1 to the network shown in FIG. 1 causes the following three problems. A first problem is that a condition occurs where RD data packets and WR data packets are issued at one time in large quantities (From hereon this conditions is called a burst.). When this burst is input to a bandwidth control device, the buffer overflows and data is discarded at this point. The storage data is characterized in having a large capacity and being burst prone compared to data sent and received conventionally over IP networks. So in order to achieve bandwidth control without discarding the RD data packet 201 and the WR data packet 302, the traffic shaper must have a large capacity from several to several dozen megabytes for each user. Maintaining such a large capacity buffer for each user is extremely difficult and even if actually achieved will have poor expandability.
A second problem is that the storage device 105-i and the user computer terminal impose a greater load than required. The bandwidth control device of Patent document 1 sends a packet just for confirming that the data amount sent over the wide area network is within the contract bandwidth. The RD request packet 200 and the R2T packet 301 contain transmit request data length information. The storage device 105-i and the computer terminal of the user that received these iSCSI packets, transfer data in bursts, regardless of whether the amount of transmitted data is within the contract range. Even if these bursts of data exceeding the contract bandwidth of the network are loaded, this data is delayed by the bandwidth control device or is discarded. Loading of data larger than the contract bandwidth of the wide area network therefore causes wasted storage device 105-i and user computer terminal resources.
A third problem is that the bandwidth of the RD data packet 201 must be controlled on the storage device 105-i side, and the WR data packet 302 bandwidth must be controlled on the user 100 side. A bandwidth control device is therefore needed on both the storage device 105-i side and the user 100 side.
The bandwidth control device of the conventional art for IP networks was therefore incapable of efficiently controlling the storage data bandwidth and incapable of preventing the waste of storage device and user computer terminal resources.